package com.relytosoft.mizar.media.analyze.api.entity.face;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.relytosoft.dubhe.common.core.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

/**
 * @author lj
 * @date 2022/5/16 11:45
 */
@TableName("AY_FACE_DISPOSITION")
@ApiModel("AyFaceDisposition")
public class AyFaceDisposition extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "ID", type = IdType.AUTO)
    @ApiModelProperty(value = "主键", required = true)
    private Integer id;

    /**
     * 布控id;第三方布控任务ID
     */
    @ApiModelProperty(value = "布控id;第三方布控任务ID", required = true)
    @TableField("DISPOSITION_ID")
    private String dispositionId;

    /**
     * 布控任务名称
     */
    @ApiModelProperty(value = "布控任务名称", required = true)
    @TableField("NAME")
    private String name;

    /**
     * 获得布控类型;1：图片，2：人脸库（条件）
     */
    @ApiModelProperty(value = "布控类型;1：图片，2：人脸库（条件）", required = true)
    @TableField("DISPOSITION_TYPE")
    private Integer dispositionType;

    /**
     * 布控范围视频源;多个以英文分号隔开
     */
    @ApiModelProperty(value = "布控范围视频源;多个以英文分号隔开", required = true)
    @TableField("DISPOSITION_RANGE_DEVICE")
    private String dispositionRangeDevice;

    /**
     * 任务开始时间
     */
    @ApiModelProperty(value = "任务开始时间")
    @TableField("BEGIN_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime beginTime;

    /**
     * 任务结束时间
     */
    @ApiModelProperty(value = "任务结束时间")
    @TableField("END_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;

    /**
     * 告警信息第三方接受URL
     */
    @ApiModelProperty(value = "告警信息第三方接受URL")
    @TableField("RECEIVE_URL")
    private String receiveUrl;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

    /**
     * 布控-图片条件;json字符串
     */
    @ApiModelProperty(value = "布控-图片条件;json字符串")
    @TableField("DISPOSITION_IMAGE")
    private String dispositionImage;

    /**
     * 布控图片ID
     */
    @ApiModelProperty(value = "布控图片ID")
    @TableField("IMAGE_ID")
    private Integer imageId;

    /**
     * 布控图片地址
     */
    @ApiModelProperty(value = "布控图片地址")
    @TableField("IMAGE_URL")
    private String imageUrl;

    /**
     * 人脸库
     */
    @ApiModelProperty(value = "人脸库")
    @TableField("FACE_GROUP")
    private String faceGroup;

    /**
     * 临时人脸库;多个以英文分号隔开
     */
    @ApiModelProperty(value = "临时人脸库;多个以英文分号隔开")
    @TableField("TEMP_FACE_GROUP")
    private String tempFaceGroup;

    /**
     * 临时名单生效开始时间
     */
    @ApiModelProperty(value = "临时名单生效开始时间")
    @TableField("TEMP_BEGIN_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime tempBeginTime;

    /**
     * 临时名单生效结束时间
     */
    @ApiModelProperty(value = "临时名单生效结束时间")
    @TableField("TEMP_END_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime tempEndTime;

    /**
     * 布控状态;0：未开始，1：布控中，2：已结束，3：异常
     */
    @ApiModelProperty(value = "布控状态;0：未开始，1：布控中，2：已结束，3：异常", required = true)
    @TableField("STATUS")
    private Integer status;

    /**
     * 布防状态;0-已撤防 1-布防中
     */
    @ApiModelProperty(value = "布防状态;0-已撤防 1-布防中", required = true)
    @TableField("DEFENSE_STATUS")
    private Integer defenseStatus;

    /**
     * 告警方式;0-未命中告警(白名单) 1-命中告警(黑名单)
     */
    @ApiModelProperty(value = "告警方式;0-未命中告警(白名单) 1-命中告警(黑名单)")
    @TableField("ALARM_TYPE")
    private Integer alarmType;

    /**
     * 相似度
     */
    @ApiModelProperty(value = "相似度")
    @TableField("THRESHOLD")
    private String threshold;

    /**
     * 发现人数
     */
    @ApiModelProperty(value = "发现人数")
    @TableField("TARGET_NUM")
    private Integer targetNum;

    /**
     * 0：周计划 1：日计划（周一到周日计划相同） 2：全天
     */
    @ApiModelProperty(value = "0：周计划 1：日计划（周一到周日计划相同） 2：全天")
    @TableField("PLAN_TYPE")
    private Integer planType;

    /**
     * 取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    @ApiModelProperty(value = "取值范围如下： 周计划时：1～7 日计划时：1 全天：0")
    @TableField("PLAN_INFO_NUM")
    private Integer planInfoNum;

    /**
     * (json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    @ApiModelProperty(value = "(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息")
    @TableField("PLAN_INFO_LIST")
    private String planInfoList;


    @ApiModelProperty(value = "设备名称")
    @TableField(exist = false)
    private String deviceName;

    @ApiModelProperty(value = "删除标记;0否 1是")
    @TableField("IS_DELETED")
    private Integer isDelete;

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    /**
     * 获得主键
     */
    public Integer getId() {
        return this.id;
    }

    /**
     * 设置主键
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获得布控id;第三方布控任务ID
     */
    public String getDispositionId() {
        return this.dispositionId;
    }

    /**
     * 设置布控id;第三方布控任务ID
     */
    public void setDispositionId(String dispositionId) {
        this.dispositionId = dispositionId;
    }

    /**
     * 获得布控任务名称
     */
    public String getName() {
        return this.name;
    }

    /**
     * 设置布控任务名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获得布控类型;1：图片，2：人脸库（条件）
     */
    public Integer getDispositionType() {
        return this.dispositionType;
    }

    /**
     * 获得布控类型;1：图片，2：人脸库（条件）
     */
    public void setDispositionType(Integer dispositionType) {
        this.dispositionType = dispositionType;
    }

    /**
     * 获得布控范围视频源;多个以英文分号隔开
     */
    public String getDispositionRangeDevice() {
        return this.dispositionRangeDevice;
    }

    /**
     * 设置布控范围视频源;多个以英文分号隔开
     */
    public void setDispositionRangeDevice(String dispositionRangeDevice) {
        this.dispositionRangeDevice = dispositionRangeDevice;
    }

    /**
     * 获得任务开始时间
     */
    public LocalDateTime getBeginTime() {
        return this.beginTime;
    }

    /**
     * 设置任务开始时间
     */
    public void setBeginTime(LocalDateTime beginTime) {
        this.beginTime = beginTime;
    }

    /**
     * 获得任务结束时间
     */
    public LocalDateTime getEndTime() {
        return this.endTime;
    }

    /**
     * 设置任务结束时间
     */
    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    /**
     * 获得告警信息第三方接受URL
     */
    public String getReceiveUrl() {
        return this.receiveUrl;
    }

    /**
     * 设置告警信息第三方接受URL
     */
    public void setReceiveUrl(String receiveUrl) {
        this.receiveUrl = receiveUrl;
    }

    /**
     * 获得备注
     */
    public String getRemark() {
        return this.remark;
    }

    /**
     * 设置备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 获得布控-图片条件;json字符串
     */
    public String getDispositionImage() {
        return this.dispositionImage;
    }

    /**
     * 设置布控-图片条件;json字符串
     */
    public void setDispositionImage(String dispositionImage) {
        this.dispositionImage = dispositionImage;
    }

    /**
     * 获得布控图片ID
     */
    public Integer getImageId() {
        return this.imageId;
    }

    /**
     * 设置布控图片ID
     */
    public void setImageId(Integer imageId) {
        this.imageId = imageId;
    }

    /**
     * 获得布控图片地址
     */
    public String getImageUrl() {
        return this.imageUrl;
    }

    /**
     * 设置布控图片地址
     */
    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    /**
     * 获得人脸库
     */
    public String getFaceGroup() {
        return this.faceGroup;
    }

    /**
     * 设置人脸库
     */
    public void setFaceGroup(String faceGroup) {
        this.faceGroup = faceGroup;
    }

    /**
     * 获得临时人脸库;多个以英文分号隔开
     */
    public String getTempFaceGroup() {
        return this.tempFaceGroup;
    }

    /**
     * 设置临时人脸库;多个以英文分号隔开
     */
    public void setTempFaceGroup(String tempFaceGroup) {
        this.tempFaceGroup = tempFaceGroup;
    }

    /**
     * 获得临时名单生效开始时间
     */
    public LocalDateTime getTempBeginTime() {
        return this.tempBeginTime;
    }

    /**
     * 设置临时名单生效开始时间
     */
    public void setTempBeginTime(LocalDateTime tempBeginTime) {
        this.tempBeginTime = tempBeginTime;
    }

    /**
     * 获得临时名单生效结束时间
     */
    public LocalDateTime getTempEndTime() {
        return this.tempEndTime;
    }

    /**
     * 设置临时名单生效结束时间
     */
    public void setTempEndTime(LocalDateTime tempEndTime) {
        this.tempEndTime = tempEndTime;
    }

    /**
     * 获得布控状态;0：未开始，1：布控中，2：已结束，3：异常
     */
    public Integer getStatus() {
        return this.status;
    }

    /**
     * 设置布控状态;0：未开始，1：布控中，2：已结束，3：异常
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获得布防状态;0-已撤防 1-布防中
     */
    public Integer getDefenseStatus() {
        return this.defenseStatus;
    }

    /**
     * 设置布防状态;0-已撤防 1-布防中
     */
    public void setDefenseStatus(Integer defenseStatus) {
        this.defenseStatus = defenseStatus;
    }

    /**
     * 获得告警方式;0-未命中告警(白名单) 1-命中告警(黑名单)
     */
    public Integer getAlarmType() {
        return this.alarmType;
    }

    /**
     * 设置告警方式;0-未命中告警(白名单) 1-命中告警(黑名单)
     */
    public void setAlarmType(Integer alarmType) {
        this.alarmType = alarmType;
    }

    /**
     * 获得相似度
     */
    public String getThreshold() {
        return this.threshold;
    }

    /**
     * 设置相似度
     */
    public void setThreshold(String threshold) {
        this.threshold = threshold;
    }

    /**
     * 获得发现人数
     */
    public Integer getTargetNum() {
        return this.targetNum;
    }

    /**
     * 设置发现人数
     */
    public void setTargetNum(Integer targetNum) {
        this.targetNum = targetNum;
    }


    /**
     * 获得0：周计划 1：日计划（周一到周日计划相同） 2：全天
     */
    public Integer getPlanType() {
        return this.planType;
    }

    /**
     * 设置0：周计划 1：日计划（周一到周日计划相同） 2：全天
     */
    public void setPlanType(Integer planType) {
        this.planType = planType;
    }

    /**
     * 获得取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    public Integer getPlanInfoNum() {
        return this.planInfoNum;
    }

    /**
     * 设置取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    public void setPlanInfoNum(Integer planInfoNum) {
        this.planInfoNum = planInfoNum;
    }

    /**
     * 获得(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    public String getPlanInfoList() {
        return this.planInfoList;
    }

    /**
     * 设置(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    public void setPlanInfoList(String planInfoList) {
        this.planInfoList = planInfoList;
    }

    @Override
    public String toString() {
        return "AyFaceDisposition{" +
                "id=" + id +
                ", dispositionId='" + dispositionId + '\'' +
                ", name='" + name + '\'' +
                ", dispositionType=" + dispositionType +
                ", dispositionRangeDevice='" + dispositionRangeDevice + '\'' +
                ", beginTime=" + beginTime +
                ", endTime=" + endTime +
                ", receiveUrl='" + receiveUrl + '\'' +
                ", remark='" + remark + '\'' +
                ", dispositionImage='" + dispositionImage + '\'' +
                ", imageId=" + imageId +
                ", imageUrl='" + imageUrl + '\'' +
                ", faceGroup='" + faceGroup + '\'' +
                ", tempFaceGroup='" + tempFaceGroup + '\'' +
                ", tempBeginTime=" + tempBeginTime +
                ", tempEndTime=" + tempEndTime +
                ", status=" + status +
                ", defenseStatus=" + defenseStatus +
                ", alarmType=" + alarmType +
                ", threshold='" + threshold + '\'' +
                ", targetNum=" + targetNum +
                ", planType=" + planType +
                ", planInfoNum=" + planInfoNum +
                ", planInfoList='" + planInfoList + '\'' +
                ", deviceName='" + deviceName + '\'' +
                ", isDelete=" + isDelete +
                ", createdId=" + createdId +
                ", createdBy='" + createdBy + '\'' +
                ", createdTime=" + createdTime +
                ", updatedId=" + updatedId +
                ", updatedBy='" + updatedBy + '\'' +
                ", updatedTime=" + updatedTime +
                '}';
    }
}